﻿using BW.MesProject.Equipment.Domain.Equipment;
using BW.MesProject.Equipment.Infrastructure.Dto.Input.DeviceType;
using BW.MesProject.Equipment.Infrastructure.Dto.Output.DeviceType;
using BW.MesProject.Public.ErrorCode;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BW.MesProject.Equipment.Infrastructure.Equipment
{
    /// <summary>
    /// 设备类型服务接口类
    /// </summary>
    public interface IDeviceTypeService
    {
        /// <summary>
        /// 新增设备类型
        /// </summary>
        /// <param name="input">设备类型新增输入参数</param>
        /// <returns>返回操作结果，包含新增设备类型的主键ID</returns>
        ApiResult<int> AddDeviceType(AddDeviceTypeInput input);

        /// <summary>
        /// 获取设备类型列表
        /// </summary>
        /// <param name="input">设备类型列表输入参数</param>
        /// <returns>返回设备类型列表</returns>
        ApiPaging<DeviceTypeOutput> GetDeviceTypeList(DeviceTypeInput input);

        /// <summary>
        /// 修改设备类型
        /// </summary>
        /// <param name="input">设备类型修改输入参数</param>
        /// <returns>返回操作结果，包含受影响的行数</returns>
        ApiResult<int> UpdateDeviceType(UpdateDeviceTypeInput input);

        /// <summary>
        /// 逻辑删除设备类型
        /// </summary>
        /// <param name="id">设备类型主键ID</param>
        /// <returns>返回操作结果，包含受影响的行数</returns>
        ApiResult<int> DeleteDeviceType(long id);

        /// <summary>
        /// 根据设备编号获取设备类型信息
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        ApiResult<DeviceTypeOutput> GetDeviceTypeValue(long id);

    }
}
